import {getUUID} from "util"
import {register,login,logout,autologin} from "http";
import router from "router"

export default {
    state:{
        userTempId:getUUID(), // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
        //如果userInfo中有值 说明处于登录状态
        //如果userInfo中没有值 说明处于未登录状态
        userInfo:{} //当登录成功之后 要将登录成功返回的用户信息入vuex库
    },
    mutations:{
        login(state,userInfo){
            state.userInfo = userInfo;
            //为了之后可以实现自动登录 我们应该将token保存到本地()
            window.localStorage.setItem("shp_token",userInfo.token)
        },
        //不管页面上的退出登录按钮用;
        //自动登录也要用
        logout(state){
            state.userInfo = {};
            //为了之后可以实现自动登录 我们应该将token保存到本地()
            window.localStorage.removeItem("shp_token")
            //退出登录后 应该要跳转到主页(主页是运行处于问登录状态的)
            router.replace("/")
        }
    },
    actions:{
        async register({},{phone,password,code,nickName}){
            //code:匹配模式
            //codeForAxios:变量名
            const {code:codeForAxios,message} = await register(phone,password,code,nickName);
            if(codeForAxios !== 200){
                throw new Error(message)
                // return "注册没有成功"
            }
        },
        async login({commit},{phone,password}){
            const {code,data} = await login(phone,password);
            if(code ===200){
                //修改仓库数据
                commit("login",data)
            }
        },
        async logout({commit}){
            const {code} = await logout();
            if(code ===200){
                commit("logout")
            }
        },
    }
}
